package edu.del.teamknowledgebase.common.exception;

import edu.del.teamknowledgebase.common.result.BusinessCode;

/**
 * 业务异常类，用于抛出明确的业务逻辑错误。
 * 继承自 GlobalException，自动使用 BusinessCode 中的 code 和 message。
 */
public class BusinessException extends GlobalException {

    /**
     * 构造方法：传入一个业务异常枚举，自动设置 code 和 message
     *
     * @param businessCode 业务异常枚举，包含错误码和错误信息
     */
    public BusinessException(BusinessCode businessCode) {
        super(businessCode.getMessage(), businessCode.getCode());
    }

    /**
     * 构造方法（扩展）：允许额外传入自定义 message（覆盖 BusinessCode 中的默认信息）
     *
     * @param businessCode 业务异常枚举
     * @param customMessage 自定义的错误提示信息（可选，如需覆盖默认文案）
     */
    public BusinessException(BusinessCode businessCode, String customMessage) {
        super(customMessage, businessCode.getCode());
    }
}